package com.ruoyi.project.module.propertyConstraint.processor.api;

/**
 * 属性约束处理器接口
 * com.ruoyi.project.module.propertyConstraint.processor.api.PropertyConstraintProcessor <br>
 *
 * @author 蒋カイセキ    Japan-Tokyo  2018-11-12 00:41:37<br>
 * ブログ http://shoukaiseki.blog.163.com/<br>
 * E-メール jiang28555@Gmail.com<br>
 **/
public interface PropertyConstraintProcessor {

    public static final String VALUE_SELECT_TYPE_NONE="none";

    /**
     * 验证,属性值通过验证返回true,否则返回false
     * @param propValue             要验证的属性值
     * @param beanParameter         参数值
     * @return
     */
    boolean verification(String propValue,String beanParameter);


    /**
     * 约束为限制只能选择某个列表值的情况下,为输入限制
     * @return  用于前端页面判断选择值解析类型,如果为none则无输入限制
     */
    String valueSelectType();


    /**
     * 只有 valueSelectType() 返回值不为none时会调用该语句
     * @param propValue
     * @param beanParameter
     * @return  最后会将该对象以json形式返回给前端
     */
    Object getValueSelect(String propValue, String beanParameter);

}
